14948
12677
Επομένως, έχω κάποιο πρόβλημα να βρω τη σωστή χρήση του list :: sort () σε σχέση με μια λίστα δομών Εδώ είναι ο σχετικός κωδικός:
φοιτητής δομ
{
char firstnm [20],
Lastnm [20];
int id,
Βαθμός;
};
λίστα  sList;
// Άσχετος κωδικός ...
<< "Εισαγάγετε το δικό σας όνομα, αναγνωριστικό και βαθμό. (Π.χ .: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (δεδομένα);
sList.sort ();
Το πρόβλημα που προσπαθώ να λύσω είναι να χρησιμοποιήσω το sList.sort () για ταξινόμηση κατά id. Ωστόσο, δεν έχω ιδέα πώς να το μεταφέρω σωστά στη λίστα :: sort (). Ευχαριστώ εκ των προτέρων για οποιαδήποτε βοήθεια / χρόνο!
ΕΠΕΞΕΡΓΑΣΙΑ: Η λύση ήταν απλώς να το προσθέσω στη δομή μου
τελεστής bool <(const student & cmp) const {
αναγνωριστικό επιστροφής 
                                
Θα πρέπει να ρίξετε μια ματιά στο std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Υπάρχουν πολλοί ορισμοί αυτής της λειτουργίας και ένας από τους οποίους μπορείτε να καθορίσετε τι θέλετε να ταξινομήσετε.
Επίσης, ρίξτε μια ματιά σε αυτήν την ανάρτηση, πιστεύω ότι είναι αυτό που χρειάζεστε: https://stackoverflow.com/a/21234017/6663947
Επεξεργασία :
αυτό είναι ένα παράδειγμα του συγκριτή:
sList.sort ([] (const student & a, const student & b) {return a.id 
άκυρο είδος (Σύγκριση comp);
Υποθέτοντας ότι θέλετε να ταξινομήσετε τα μαθητικά αντικείμενα στη λίστα σας σύμφωνα με το αναγνωριστικό κλειδιού με αύξουσα σειρά. Μπορείτε είτε να ορίσετε τον τελεστή <για την κατηγορία μαθητή που ορίζεται από το χρήστη ως:
τελεστής bool <(μαθητής const & a, student const & b) {
επιστροφή a.id